// 持久化
import { getToken, setToken, removeToken } from '@/utils/auth'
import { login, getUserInfo } from '@/api/user'
// 菜 数据
const state = {
  // token:null,
  token: getToken(),  // 从cookie 中 获取 token
  userInfo: {} // 用户信息
}
// 服务员 请求
const actions = {
  // 登录 (解构都结构迷糊了 真服儿了 )
  async login({ commit }, value) {
    let { data: { token } } = await login(value)
    // console.log(token);
    // 持久化
    commit('change', token)
  },
  // 获取用户信息
  async getUserInfo({ commit }) {
    const { data } = await getUserInfo()
    commit('setUserInfo', data)
  },
  // 退出登录
  logout({ commit }) {
    // 把cookie中的Token移出
    commit('remove')
    // 把用户信息设置为空
    commit('setUserInfo', {})
    // 把vuex的Token设置为空
    commit('change', '')

  },
  // 设置用户信息
}
// 后厨 更改数 据
const mutations = {
  // 设置用户信息
  setUserInfo(state, userInfo) {
    state.userInfo = userInfo
  },
  // 设置Token
  change(state, value) {
    state.token = value
    setToken(value)
  },
  // 移出Token
  remove() {
    removeToken()
  }
}

// 暴露出去
export default {
  // 开启命名空间，开启后 store->index.js modules 模块才能找到
  namespaced: true,
  state,
  actions,
  mutations
}